//axios的封装
//1.引入 axios
import axios from 'axios';
//引入提示信息的全局引入
import { Message } from 'element-ui';
import { getCookie } from '@/utils/support'


import store from '../store'
import router from '../router'

//2.创建axios 实例
const service = axios.create({
  //3.配置
  baseURL: "http://yinruifang.cn/index/Api/",
  timeout: 10 * 60 * 1000 //1分钟  
})

//4. 请求拦截
service.interceptors.request.use(
  (config) => {
    //配置 请求拦截中的token
    config.headers.Authorization = getCookie("token")  //后期需要改写为 后台传过来的token的值
    return config;
  },
  (err) => {
    return Promise.reject(err);
  }
)

//5.响应拦截
service.interceptors.response.use(
  (res) => {
    const data = res.data;
    console.log(res);
    if (data.status != 200) {
      if (data.status == 401) {
        this.$confirm('您已经被登出了，您是留在这个页面还是重新登陆', '确认登出', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          store.dispatch('LogoutAC')
          router.go(0)
        }).catch(() => {
          console.log('留在原页面');
        });
      } else {
        console.log("出错了");
        Message({
          message: data.msg,
          type: "error"
        })
      }

    }
    return data;

  },

  (err) => {
    return Promise.reject(err);
  }
)

//6.导出
export default service;